@use "@core/scss/base/mixins";
@use "@configured-variables" as variables;
@use "vuetify/lib/styles/tools/states" as vuetifyStates;

%nav-header-action {
  font-size: 1.25rem;
}

// 垂直导航栏导航项样式（包括节标题）
%vertical-nav-item {
  margin-block: 0;
  margin-inline-start: variables.$vertical-nav-horizontal-margin-start;
  margin-inline-end: variables.$vertical-nav-horizontal-margin-end;
  padding-block: 0;
  padding-inline-start: variables.$vertical-nav-horizontal-padding-start;
  padding-inline-end: variables.$vertical-nav-horizontal-padding-end;
  white-space: nowrap;
}

// 与 %vertical-nav-item 相同，只是排除了节标题
%vertical-nav-item-interactive {
  border-radius: 0.4rem;
  block-size: 2.75rem;

  // 使用 margin-block-end 而不是 margin-block，以便为阴影提供更多的空间
  // 使用 margin-block 时，由于空间较小（空间被分配给顶部和底部），阴影会被切断
  margin-block-end: 0.375rem;
}

// 垂直导航项图标通用样式
// 此处非导航组子项样式
%vertical-nav-items-icon {
  flex-shrink: 0;
  font-size: variables.$vertical-nav-items-icon-size;
  margin-inline-end: variables.$vertical-nav-items-icon-margin-inline-end;
}

// 导航组子项的图标样式（第 2 级）
%vertical-nav-items-nested-icon {
  // 图标边距 margin-inline 为（正常图标字体大小 - 小图标字体大小）/ 2
  $vertical-nav-items-nested-icon-margin-inline: calc((variables.$vertical-nav-items-icon-size - variables.$vertical-nav-items-nested-icon-size) / 2);

  font-size: variables.$vertical-nav-items-nested-icon-size;
  margin-inline-end: $vertical-nav-items-nested-icon-margin-inline + variables.$vertical-nav-items-icon-margin-inline-end;
  margin-inline-start: $vertical-nav-items-nested-icon-margin-inline;
}

%vertical-nav-items-icon-after-2nd-level {
  visibility: hidden;
}

// 打开和活动状态的导航组样式
%vertical-nav-group-open-active {
  @include mixins.selected-states("&::before");
}

// 节标题
%vertical-nav-section-title {
  // 当文本和图标切换时，设置高度以防止抖动
  block-size: 1.5rem;
  color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity));
  font-size: 0.75rem;
  text-transform: uppercase;
}

// 垂直导航项徽章样式
%vertical-nav-item-badge {
  display: inline-block;
  border-radius: 1.5rem;
  font-size: 0.8em;
  font-weight: 500;
  line-height: 1;
  padding-block: 0.25em;
  padding-inline: 0.55em;
  text-align: center;
  vertical-align: baseline;
  white-space: nowrap;
}
